import java.util.ArrayList;

/**
 * @program: javase
 * @description: 建造者模式
 * @author: luolidong
 * @create: 2021-06-14 11:20
 * @version: 1.0
 */
public class Builder {
    /**
     * 1.抽象建造者 Builder：为创建一个产品对象的各个部件指定抽象接口。
     * 2.具体建造者 ConcreteBuilder：实现Builder的接口以构造和装配该产品的各个部件，定义并明确它所创建的表示，并提供一个检索产品的接口。
     * 3.建造的对象 Product：表示被构造的复杂对象。
     * 4.建造的指挥者 Director：构造一个使用Builder接口的对象，指导构建过程。
     */
    public static void main(String[] args) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("a");

//        StringBuffer;
//        ArrayList
    }
/**
* Appendable 接口是 抽象建造者
 * AbstractStringBuilder implements Appendable
 * 是具体建造者，但不能实例化
 * StringBuilder extends AbstractStringBuilder
 * append方法调用的是父类的append方法
 * StringBuilder 是指挥者，也是建造者
*/
}
